package cn.cloudreal.cbms.castDetail.service;

import java.util.List;
import java.util.Map;

import cn.cloudreal.cbms.vo.Charge;
import cn.cloudreal.cbms.vo.Dictionary;
import cn.cloudreal.cbms.vo.FundBudget;
import cn.cloudreal.cbms.vo.LevelRule;
import cn.cloudreal.cbms.vo.MediaPrice;
import cn.cloudreal.cbms.vo.ProjectMedium;
import cn.cloudreal.cbms.vo.SourcePlanYear;

public interface ChargeService
{
   /**
    * 根据媒体价格id取得预算阶梯折扣
    * @param priceId
    * @return
    */
    LevelRule getUnPromotionUsedRatio(Map condition);
    
    /**
     * 根据年度地市和费用类型、费用子类取得预算值
     * @param condition
     * @return
     */
    FundBudget getMediaSummarieByYd(Map condition);
    
    /**
     * 根据媒体价格id查找费用类型
     * @param condition
     * @return
     */
    List<Dictionary> getCostTypeByProMedID(Map condition);
    
    /**
     * 根据媒体价格id和费用类型查找费用子类
     * @param condition
     * @return
     */
    List<Dictionary> getSubCostTypeByProMedIDCostType(Map condition);
    
    /**
     * 保存项目媒介费用
     * @param condition
     * @return
     */
    void saveProjectMedioPrice(List<Charge> charge);
    
    /**
     * 根据项目媒介、费用类型、费用子类取得预算
     * @param condition
     * @return
     */
    SourcePlanYear getMediaSummariePcc(Map condition);
    
    /**
     * 根据项目媒介id取得项目媒介信息
     * @param condition
     * @return
     */
    public ProjectMedium getProjectMediumByProMedID(int proMedID);
    
    /**
     * 根据项目媒介id取得项目费用信息
     * @param condition
     * @return
     */
    public List<Charge> getChargesByProMedID(Integer proMedID);
    
    /**
     * 删除项目媒介费用
     * @param condition
     * @return
     */
    void delProjectMedioPrice(Integer proMedID);
    
    /**
     * 根据项目媒介id取得项目价格信息
     * @param condition
     * @return
     */
    public MediaPrice getMediaPriceByProMedID(Integer proMedID);
}
